package dmeo7;

import org.springframework.beans.factory.annotation.Value;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

public class Person {
    private String name;

    public Person(){
        //构造器实际上是对象生命周期第一个被调用的函数
        System.out.println("1:Person对象的构造器被调用了");
    }
    public String getName() {
        return name;
    }

    //通过@Value注解在Spring创建对象时，利用属性对应的set方法为属性值初始化
    @Value("张三")
    public void setName(String name) {
        this.name = name;
        System.out.println("name属性的set方法被：setName()调用了");
    }

    /**
     * @PostContruce注解是Spring容器在创建并初始化当前对象后进行回调被该注解注释的方法
     * 因此，如果当前对象需要感知何时被Spring容器初始化完毕则可以任意定义一个方法然后使用该注解即可
     */
    @PostConstruct
    public void init(){
        System.out.println("sad");
    }

    @PreDestroy
    private void destroy(){
        System.out.println("asd");
    }
}
